'''
标准格式中 行情数据的列索引名称 首字母为大写格式。
例如：
    High, Low, Open, Close, Volume

而 daily() 接口返回的行情数据格式中列索引名称首字母为小写格式
例如：
    open, high.

为了统一各个接口的数据种类，行情数据只选择 High, Low, Open, Close, Volume 这5类，其他
数据可以由基础数据经过对应的计算获得.

---------------------------------------------------

我们以 Series 组成的字典形式从原行情数据中提取所需列并重新创建一个 DataFrame
其中字典的每个键所对应的Series序列会成为 DataFrame 的一列，由于未指定 DataFrame 的行索引 index,
那么各 Series 的索引会被 合并成 DataFrame 的行索引
'''

import tushare as ts
import pandas as pd
# 设置 token
token = 'c508869365fce05610e2cf264637f0473691e38fb80b3b21163bd150'
pro = ts.pro_api(token) # 初始化 pro 接口


# 获取格力电器日线行情数据

df_gldg = pro.daily(ts_code='000651.SZ', start_date='20090101',
                                        end_date='20201021')
df_gldg.trade_date = pd.DatetimeIndex(df_gldg.trade_date)
df_gldg.set_index('trade_date', drop=True, inplace=True)
print(df_gldg.head())

df_gldg.sort_index(inplace=True)

df_gldg.index = df_gldg.index.set_names('Date')
print(df_gldg.head())




recon_data = {'Open': df_gldg.open, 
            'Close':df_gldg.close,
            'High':df_gldg.high,
            'Low':df_gldg.low,
            'Volume':df_gldg.vol}
df_recon = pd.DataFrame(recon_data)

print(df_recon.columns)

print(df_recon.head())
